package net.towee.model.account;

import com.google.gwt.user.client.rpc.IsSerializable;

/**
 * This object contains account identity information: first name, 
 * last name, nickname. Other information contains in the ProfileContainer.
 * @author  c58
 */
public interface AccountIdentity extends IsSerializable {
	public static final String NICKNAME_VLIDATION_PATTERN = "^[a-z0-9.]+$";
	
	/**
	 * @return id of account.
	 */
	String getId();
	
	/**
	 * @return true if user online, flase if offline
	 */
	boolean isOnline();
	void setOnlineState(boolean state);
	
	/*
	 * Getters
	 */
	String getFirstName();
	String getLastName();
	String getFullName();
	String getNickName();
	String getPhotoId();
	
	/*
	 * Setters
	 */
	void setFirstName(String name);
	void setLastName(String name);
	void setFullName(String name);
	void setPhotoId(String id);
	boolean setNickName(String name);
}
